package br.com.translog.controlador;

import br.com.translog.dao.DAOFuncionario;
import br.com.translog.interfacee.IDAOFuncionario;
import br.com.translog.modelo.Funcionario;
import br.com.translog.modelo.Logradouro;
import br.com.translog.modelo.PessoaFisica;
import javax.swing.JOptionPane;

public final class ControladorFuncionario {
    
    private IDAOFuncionario repoFuncionario;
    
    private static final ControladorFuncionario instFuncionario = new ControladorFuncionario();
    
    private ControladorFuncionario() {
        
        repoFuncionario = new DAOFuncionario();
    }

    public static synchronized ControladorFuncionario getInstFuncionario() {
        
        return instFuncionario;
    }

    public void cadastraFuncionario(Funcionario f, PessoaFisica pf, Logradouro l) {
        
        try {
            repoFuncionario.cadastraFuncionario(f, pf, l);
            JOptionPane.showMessageDialog(null, "Funcionário Cadastrado com Sucesso!");
        } catch (Exception e) {
        }
    }
    
    public void alteraFuncionario(Funcionario f) {
        
        try {
            repoFuncionario.alteraFuncionario(f);
            JOptionPane.showMessageDialog(null, "Dados Atualizados com Sucesso!”");
        } catch (Exception e) {
        }
    }
    
    public void excluiFuncionario(int matricula) {
        
        try {
            repoFuncionario.excluiFuncionario(matricula);
            JOptionPane.showMessageDialog(null, "Funcionário Excluído com Sucesso!”");
        } catch (Exception e) {
        } 
    }
    
    public Funcionario consultaFuncionario(int matricula) {
        
        Funcionario f = null;
        
        try {
            f = repoFuncionario.consultaFuncionario(matricula);
        } catch (Exception e) {
        }
        
        return f;
    }
}
